package com.kyrie.lib_sys.application.bookApplys.mapper;

import com.github.pagehelper.Page;
import com.kyrie.lib_sys.common.pojo.dto.BookDTO;
import com.kyrie.lib_sys.common.pojo.dto.BookPageQueryDTO;
import com.kyrie.lib_sys.common.pojo.entity.Book;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface BookMapper {

    /**
     * 插入图书
     * @param book
     */
    void insert(Book book);

    /**
     * 根据id查询图书
     *
     * @param book
     * @return
     */
    BookDTO queryBookById(Book book);

    /**
     * 根据条件查询全部图书信息
     *
     * @param
     * @return
     */
    Page<Book> queryAllByLimit(BookPageQueryDTO bookPageQueryDTO);


    /**
     * 分页查询
     *
     * @param bookPageQueryDTO
     * @return
     */
    Page<Book> queryPage(BookPageQueryDTO bookPageQueryDTO);

    /**
     * 根据条件查询图书信息
     * @param book
     * @return
     */
    BookDTO queryByCondition(Book book);

    /**
     * 修改图书信息
     * @param book
     */
    boolean update(Book book);

    /**
     * 删除图书信息
     * @param book
     */
    void deleteById(Book book);


    /**
     * 批量删除图书信息
     * @param ids
     */
    void deleteBatch( List<Long> ids);

    /**
     * 批量插入图书信息
     * @param bookList
     */
    void insertBatch(List<Book> bookList);
}
